package com.seqb.utils;

import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

/**
 * @author lilinshen
 * @title Json处理工具类
 * @description 请填写相关描述
 * @date 2019/11/11
 */
public class JsonUtils {

    /**
     * Bean对象转JSON
     */
    public static String beanToJson(Object object, String jsonString) {
        if (object != null) {
            if (StringUtils.isEmpty(jsonString)) {
                return JSONObject.toJSONString(object);
            }
            return JSON.toJSONStringWithDateFormat(object, jsonString);
        } else {
            return null;
        }
    }

    /**
     * Bean对象转JSON
     */
    public static String beanToJson(Object object) {
        if (object != null) {
            return JSON.toJSONString(object);
        } else {
            return null;
        }
    }

    /**
     * (Key、Value)键值对转JSON字符串
     */
    public static String stringToJsonByFastjson(String key, String value) {
        if (StringUtils.isEmpty(key) || StringUtils.isEmpty(value)) {
            return null;
        }
        Map<String, String> map = new HashMap<String, String>(16);
        map.put(key, value);
        return beanToJson(map, null);
    }

    /**
     * 将JSON字符串转换成指定类型的对象
     */
    public static Object jsonToBean(String json, Object clazz) {
        if (StringUtils.isEmpty(json) || clazz == null) {
            return null;
        }
        return JSON.parseObject(json, clazz.getClass());
    }

    /**
     * 将JSON字符串转MAP对象
     */
    public static Map jsonToMap(String json) {
        if (StringUtils.isEmpty(json)) {
            return null;
        }
        return JSON.parseObject(json, Map.class);
    }
}
